package com.product.system.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
public class SysMenu {


    /**
     *菜单ID
     */
    @ExcelIgnore
    private Long menuId;

    /**
     * 菜单名称
     * */
    @ExcelProperty({"菜单管理","菜单名称"})
    private String menuName;

    /**
     * 父菜单名称
     */
    @ExcelIgnore
    private String parentName;

    /**
     * 父菜单ID
     */
    @ExcelProperty({"菜单管理","父菜单ID"})
    private Long parentId;

    /**
     * 显示顺序
     */
    @ExcelProperty({"菜单管理","显示顺序"})
    private Integer orderNum;

    /**
     * 路由地址
     */
    @ExcelProperty({"菜单管理","路由地址"})
    private String path;

    /**
     * 组件路径
     */
    @ExcelProperty({"菜单管理","组件路径"})
    private String component;

    /**
     *路由参数
     */
    @ExcelProperty({"菜单管理","路由参数"})
    private String query;

    /**
     *路由名称，默认和路由地址相同的驼峰格式（注意：因为vue3版本的router会删除名称相同路由，为避免名字的冲突，特殊情况可以自定义）
     */
    @ExcelProperty({"菜单管理","路由名称"})
    private String routeName;

    /**
     * 是否为外链（0是 1否）
     */
    @ExcelIgnore
    private String isFrame;

    /**
     是否缓存（0缓存 1不缓存）
     */
    @ExcelIgnore
    private String isCache;

    /**
     * 类型（M目录 C菜单 F按钮）
     */
    @ExcelIgnore
    private String menuType;

    /**
     * 显示状态（0显示 1隐藏）
     */
    @ExcelIgnore
    private String visible;

    /**
     *菜单状态（0正常 1停用）
     */
    @ExcelProperty({"菜单管理","菜单状态"})
    private String status;

    /**
     * 权限字符串
     */
    @ExcelIgnore
    private String perms;

    /**
     *菜单图标
     */
    @ExcelIgnore
    private String icon;

    /** 创建者 */
    @ExcelIgnore
    private String createBy;

    /** 创建时间 */
    @ExcelProperty({ "菜单管理", "创建时间" })
    private Date createTime;

    /** 更新者 */
    @ExcelIgnore
    private String updateBy;

    /** 更新时间 */
    @ExcelIgnore
    private Date updateTime;

    /** 备注 */
    @ExcelIgnore
    private String remark;

    /** 图片 */
    @ExcelIgnore
    private String pic;
}
